function InstanceOf(obj, type) {

    // 判断obj是否是Type类型的实例
    // 获取函数的显式原型
    const prototype = type.prototype;

    // 获取obj的隐式原型对象
    let proto = obj.__proto__;

    // 遍历原型链
    while (proto) {
        // 判断原型链上是否存在构造函数的显式原型
        if (proto === prototype) {
            return true;
        }

        // 继续向上查找
        proto = proto.__proto__;
    }

    return false;

}